#pragma once
 
#include "MGUI_Widget.h"
#include "MGUI_String.h"
#include "MGUI_TextBox.h"

namespace Myway {

	class MGUI_ENTRY MGUI_ListBoxItem : public MGUI_Widget
	{
		DeclareRTTI();

		friend class MGUI_ListBox;

	public:
		MGUI_ListBoxItem(MGUI_ListBox * _listBox, const MGUI_LookFeel * _lookfeel,
			             const MGUI_String & _text = L"", void * _userData = NULL);
		virtual ~MGUI_ListBoxItem();

		void SetText(const MGUI_String & text) { mTextBox->SetCaption(text); }
		const MGUI_String & GetText() const { return mTextBox->GetCaption(); }

		void SetFont(MGUI_Font * font) { mTextBox->SetFont(font); }
		MGUI_Font * GetFont() { return mTextBox->GetFont(); }

		void SetUserData(void * _userData) { mUserData = _userData; }
		void * GetUserData() const { return mUserData; }

		virtual void OnUpdateWidgetState();

	protected:
		virtual void OnMousePressed(int _x, int _y, MGUI_MouseButton _id);

	protected:
		MGUI_ListBox * mListBox;
		MGUI_TextBox * mTextBox;
		void * mUserData;
	};
	
}